﻿using TaskManager.Domain.BusinessObjects;
using TaskManager.Domain.Exceptions;

namespace TaskManager.Domain.Services
{
    /// <summary>
    /// Provides method for <seealso cref="Project"/> deletion
    /// </summary>
    public interface IProjectDeleteService
    {
        /// <summary>
        /// Deletes a project
        /// </summary>
        /// <param name="project">Project</param>
        /// <exception cref="UserActionFailureException">Thrown if project can not be deleted</exception>
        void Delete(Project project);
        
        /// <summary>
        /// Deletes a project
        /// </summary>
        /// <param name="projectId">Project identifier</param>
        /// <exception cref="UserActionFailureException">Thrown if project can not be deleted</exception>
        void Delete(int projectId);
    }
}